Operating system identities and service identities can be discovered and use in, for example, network monitoring and management, computer network security, intrusion detection and/or prevention systems, remediation systems, and/or other applications which monitor and/or manage a network or need to know an identity of an operating system or service on a remote host. However, operating system and/or service identities can change over time as hosts are changed out or updated. Furthermore, operating system identities and service identities which are obtained either from passively observing packet traffic, actively scanning a host, and/or manually input by a user are frequently not so detailed as to know precisely which software is on a host, including, e.g., version and update/service pack.
In order to provide a best guess as to operating system identity, conventionally, a system took the highest priority fingerprint and used that as the identity for the host. For example, if one type of fingerprint is usually more accurate than another (such as an SMB fingerprint, which is more accurate than a client fingerprint, which is itself more accurate than a server fingerprint, which is itself more accurate than a DHCP fingerprint). A conventional system rated the fingerprints by type for accuracy level.
Nevertheless, the conventional system is only able to use one of the reported fingerprints as the identity. The fingerprints are weighted as to accuracy. The system picks the likely more accurate fingerprint. Consequently, if the system has an SMB fingerprint, the system stores whatever the SMB fingerprint indicates as the identity of that host.